@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Montserrat:wght@300;400;500;600;700&family=Great+Vibes&display=swap";:root{--passport-green:#6b8fa3;--passport-dark:#4a6b7a;--passport-gold:#f0e6c8;--passport-light:#f5f7f9;--passport-cream:#f8fafb;--passport-burgundy:#8b7355;--ribbon-red:#7a9bb0;--ribbon-dark:#5a7a8f;--ribbon-shine:#9ab5c5;--seal-red:#6b8fa3;--font-script:"Great Vibes", cursive;--font-body:"Montserrat", sans-serif}.passport-invitation{background:linear-gradient(135deg,#4a6b7a 0%,#6b8fa3 50%,#8ba5b5 100%);flex-direction:column;justify-content:flex-start;align-items:center;min-height:100dvh;padding:1rem 1rem 200px;display:flex;position:relative;overflow:hidden}.passport-bg-pattern{pointer-events:none;z-index:0;background-image:radial-gradient(circle at 20% 80%,#b8a88a1a 0%,#0000 50%),radial-gradient(circle at 80% 20%,#b8a88a1a 0%,#0000 50%);position:fixed;inset:0}.sparkle-container{pointer-events:none;z-index:1000;position:fixed;inset:0}.sparkle{color:var(--passport-gold);opacity:0;font-size:1rem;animation:1.5s ease-out forwards sparkleFloat;position:absolute}@keyframes sparkleFloat{0%{opacity:1;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1.5)rotate(180deg)}to{opacity:0;transform:scale(.5)rotate(360deg)translateY(-100px)}}.sparkle-1{animation-delay:0s;top:5%;left:30%}.sparkle-2{animation-delay:50ms;top:8%;left:50%}.sparkle-3{animation-delay:.1s;top:6%;left:70%}.sparkle-4{animation-delay:.15s;top:10%;left:40%}.sparkle-5{animation-delay:.2s;top:7%;left:60%}.sparkle-6{animation-delay:.25s;top:92%;left:35%}.sparkle-7{animation-delay:.3s;top:90%;left:55%}.sparkle-8{animation-delay:.35s;top:94%;left:45%}.sparkle-9{animation-delay:.4s;top:88%;left:65%}.sparkle-10{animation-delay:.45s;top:91%;left:25%}.sparkle-11{animation-delay:.5s;top:25%;left:5%}.sparkle-12{animation-delay:.55s;top:45%;left:7%}.sparkle-13{animation-delay:.6s;top:65%;left:6%}.sparkle-14{animation-delay:.65s;top:35%;left:8%}.sparkle-15{animation-delay:.7s;top:55%;left:5%}.sparkle-16{animation-delay:.75s;top:30%;left:93%}.sparkle-17{animation-delay:.8s;top:50%;left:95%}.sparkle-18{animation-delay:.85s;top:70%;left:92%}.sparkle-19{animation-delay:.9s;top:40%;left:94%}.sparkle-20{animation-delay:.95s;top:60%;left:93%}.close-passport-btn{z-index:100;color:var(--passport-green);border:2px solid var(--passport-green);cursor:pointer;background:#fffffff2;border-radius:50px;align-items:center;gap:8px;padding:10px 18px;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;transition:all .3s;animation:.5s ease-out fadeInDown;display:flex;position:fixed;top:15px;right:15px;box-shadow:0 4px 20px #0003}.close-passport-btn:hover{background:var(--passport-green);color:#fff;transform:scale(1.05)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.music-toggle-btn{z-index:100;color:var(--passport-green);border:2px solid var(--passport-green);cursor:pointer;background:#fffffff2;border-radius:50px;align-items:center;gap:6px;padding:12px 16px;font-family:Montserrat,sans-serif;transition:all .3s;animation:.5s ease-out fadeInDown;display:flex;position:fixed;top:15px;left:15px;box-shadow:0 4px 20px #0003}.music-toggle-btn:hover{background:var(--passport-green);color:#fff;transform:scale(1.05)}.music-toggle-btn.playing{background:var(--passport-green);color:#fff}.music-toggle-btn .music-icon{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.music-toggle-btn .music-icon svg{width:20px;height:20px}.music-toggle-btn .music-waves{opacity:0;align-items:flex-end;gap:2px;height:16px;transition:opacity .3s;display:flex}.music-toggle-btn.playing .music-waves{opacity:1}.music-toggle-btn .wave{background:currentColor;border-radius:2px;width:3px;animation:.8s ease-in-out infinite soundWave}.music-toggle-btn .wave:first-child{height:60%;animation-delay:0s}.music-toggle-btn .wave:nth-child(2){height:100%;animation-delay:.2s}.music-toggle-btn .wave:nth-child(3){height:40%;animation-delay:.4s}@keyframes soundWave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.ribbon-wrapper{z-index:10;pointer-events:none;position:absolute;inset:0;overflow:visible}.ribbon{background:linear-gradient(180deg, var(--ribbon-shine) 0%, var(--ribbon-red) 50%, var(--ribbon-dark) 100%);transition:all .8s cubic-bezier(.68,-.55,.265,1.55);position:absolute;box-shadow:0 2px 10px #0000004d}.ribbon-shine{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:2s ease-in-out infinite ribbonShine;position:absolute}@keyframes ribbonShine{0%,to{opacity:0;transform:translate(-100%)}50%{opacity:1;transform:translate(100%)}}.ribbon-horizontal{height:28px;top:50%;left:-15px;right:-15px;transform:translateY(-50%)}.ribbon-horizontal .ribbon-shine{width:50%;top:0;bottom:0;left:0}.ribbon-vertical{width:28px;top:-15px;bottom:-15px;left:50%;transform:translate(-50%)}.ribbon-bow{z-index:5;width:70px;height:70px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bow-left,.bow-right{background:linear-gradient(135deg, var(--ribbon-shine) 0%, var(--ribbon-red) 50%, var(--ribbon-dark) 100%);border-radius:50%/60% 60% 40% 40%;width:30px;height:22px;transition:all .6s cubic-bezier(.68,-.55,.265,1.55);position:absolute;top:50%;box-shadow:inset 0 -3px 8px #0000004d}.bow-left{left:5px;transform:translateY(-50%)rotate(-30deg)}.bow-right{right:5px;transform:translateY(-50%)rotate(30deg)}.bow-knot{background:radial-gradient(circle, var(--ribbon-shine) 0%, var(--ribbon-red) 50%, var(--ribbon-dark) 100%);z-index:2;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bow-tail-left,.bow-tail-right{background:linear-gradient(180deg, var(--ribbon-red) 0%, var(--ribbon-dark) 100%);border-radius:0 0 5px 5px;width:10px;height:35px;transition:all .6s cubic-bezier(.68,-.55,.265,1.55);position:absolute;top:55%}.bow-tail-left{left:30%;transform:rotate(15deg)}.bow-tail-right{right:30%;transform:rotate(-15deg)}.wax-seal{background:radial-gradient(circle at 30% 30%, #c44d64 0%, var(--seal-red) 40%, #7a2538 100%);z-index:20;border-radius:50%;width:55px;height:55px;transition:all .5s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 15px #0006}.seal-inner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.seal-initials{color:var(--passport-gold);align-items:center;gap:2px;font-family:Cormorant Garamond,serif;font-size:.9rem;font-weight:700;display:flex}.seal-heart{color:gold;font-size:.6rem}.seal-crack{opacity:0;background:#0009;width:2px;height:0;position:absolute}.ribbon-wrapper.unwrapping .ribbon-horizontal{animation:.8s cubic-bezier(.68,-.55,.265,1.55) forwards ribbonSlideH}.ribbon-wrapper.unwrapping .ribbon-vertical{animation:.8s cubic-bezier(.68,-.55,.265,1.55) .1s forwards ribbonSlideV}.ribbon-wrapper.unwrapping .bow-left{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .2s forwards bowLeftFly}.ribbon-wrapper.unwrapping .bow-right{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .2s forwards bowRightFly}.ribbon-wrapper.unwrapping .bow-knot{animation:.5s .3s forwards knotPop}.ribbon-wrapper.unwrapping .bow-tail-left,.ribbon-wrapper.unwrapping .bow-tail-right{animation:.8s cubic-bezier(.68,-.55,.265,1.55) .25s forwards tailFall}.ribbon-wrapper.unwrapping .wax-seal{animation:.6s .4s forwards sealBreak}@keyframes ribbonSlideH{0%{transform:translateY(-50%)scaleX(1)}to{opacity:0;transform:translateY(-50%)scaleX(0)}}@keyframes ribbonSlideV{0%{transform:translate(-50%)scaleY(1)}to{opacity:0;transform:translate(-50%)scaleY(0)}}@keyframes bowLeftFly{to{opacity:0;transform:translateY(-100px)translate(-80px)rotate(-180deg)scale(0)}}@keyframes bowRightFly{to{opacity:0;transform:translateY(-100px)translate(80px)rotate(180deg)scale(0)}}@keyframes knotPop{to{opacity:0;transform:translate(-50%,-150%)scale(0)}}@keyframes tailFall{to{opacity:0;transform:rotate(45deg)translateY(100px)}}@keyframes sealBreak{30%{transform:translate(-50%,-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-200%)scale(0)rotate(360deg)}}.passport-container.opening .ribbon-wrapper{pointer-events:none}.passport-container.opened .ribbon-wrapper{display:none}.passport-wrapper{z-index:1;flex-direction:column;align-items:center;width:100%;max-width:100%;margin-top:60px;padding:0;transition:all .5s;display:flex;position:relative}.passport-wrapper.is-open{max-width:100%;margin-top:20px}.passport-container{perspective:2000px;flex-direction:column;align-items:center;width:100%;max-width:360px;margin:0 auto;transition:max-width .5s;display:flex;position:relative;overflow:hidden}.passport-container.opened{max-width:100%}.passport-cover{background:var(--passport-green);cursor:pointer;transform-style:preserve-3d;border-radius:8px;width:100%;min-height:540px;padding:1.75rem 1.25rem;transition:all .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 15px 50px #0006}.passport-cover:before{content:"";pointer-events:none;border:1px solid #c9a9624d;border-radius:4px;position:absolute;inset:8px}.passport-container.opened .passport-cover{display:none}.passport-cover:hover{transform:scale(1.02)rotateX(3deg);box-shadow:0 20px 60px #00000080}.passport-cover-content{text-align:center;color:var(--passport-gold)}.passport-header-text{letter-spacing:6px;text-shadow:2px 2px 4px #000000b3;text-transform:capitalize;margin-bottom:.5rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-style:italic}.passport-title{letter-spacing:12px;text-shadow:3px 3px 6px #000000b3,0 0 25px #0006;margin:0 0 .75rem;font-family:Montserrat,sans-serif;font-size:2rem;font-weight:700}.passport-emblem{justify-content:center;align-items:center;width:120px;height:120px;margin:.75rem auto;display:flex;overflow:hidden}.emblem-logo{object-fit:contain;width:100%;max-width:120px;height:100%;max-height:120px}.emblem-shield{background:linear-gradient(180deg, var(--passport-gold) 0%, #a88942 100%);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:.5rem;display:flex}.emblem-sun{background:var(--passport-green);width:26px;height:26px;box-shadow:0 0 0 2px var(--passport-gold);border-radius:50%;margin-bottom:.25rem}.emblem-icons{gap:.25rem;font-size:.85rem;display:flex}.emblem-lions{gap:1.25rem;margin-top:.25rem;font-size:1rem;display:flex}.passport-save-date{border:2px solid var(--passport-gold);letter-spacing:5px;text-shadow:1px 1px 3px #0009;margin:.75rem 0;padding:.5rem 1.25rem;font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:600;display:inline-block}.passport-couple-info{margin-top:1rem;padding:0 .5rem}.to-marriage{letter-spacing:4px;opacity:1;text-shadow:2px 2px 4px #000000b3;text-transform:uppercase;margin-bottom:.5rem;font-family:Montserrat,sans-serif;font-size:.6rem;font-weight:500}.couple-names-cover{letter-spacing:3px;text-shadow:3px 3px 6px #000000b3,0 0 20px #0006;margin:.5rem 0;font-family:Great Vibes,cursive;font-size:2rem}.wedding-date-cover{letter-spacing:6px;text-shadow:2px 2px 5px #000000b3;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:500}.tap-hint-gesture{z-index:30;pointer-events:auto;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;animation:.5s ease-out forwards tapHintFadeIn;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes tapHintFadeIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.hand-icon{filter:drop-shadow(0 4px 12px #0006);z-index:2;text-align:center;font-size:3rem;line-height:1;animation:1.2s ease-in-out infinite handTap;position:relative}@keyframes handTap{0%,to{transform:translateY(-5px)scale(1)}20%{transform:translateY(10px)scale(.9)}40%{transform:translateY(-5px)scale(1)}60%{transform:translateY(10px)scale(.9)}80%{transform:translateY(-5px)scale(1)}}.tap-rings{z-index:1;pointer-events:none;width:120px;height:120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tap-ring{border:3px solid var(--passport-gold);opacity:0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #b8a88a80}.ring-1{width:40px;height:40px;animation:1.2s ease-out .2s infinite ringPulse}.ring-2{width:70px;height:70px;animation:1.2s ease-out .4s infinite ringPulse}.ring-3{width:100px;height:100px;animation:1.2s ease-out .6s infinite ringPulse}@keyframes ringPulse{0%{opacity:.9;border-width:4px;transform:translate(-50%,-50%)scale(.3)}50%{opacity:.5;border-width:2px}to{opacity:0;border-width:1px;transform:translate(-50%,-50%)scale(1.3)}}.passport-back-cover{background:var(--passport-green);border-radius:8px;min-height:400px;padding:2rem;display:none;position:relative;overflow:hidden;box-shadow:0 15px 50px #0006}.passport-back-cover:before{content:"";pointer-events:none;border:1px solid #c9a9624d;border-radius:4px;position:absolute;inset:8px}.passport-container.opened .passport-back-cover{animation:.6s ease-out flipIn;display:block}@keyframes flipIn{0%{opacity:0;transform:rotateY(-90deg)}to{opacity:1;transform:rotateY(0)}}.back-cover-content{text-align:center;color:#ffffffe6;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.bible-verse{padding:2rem 1rem}.verse-text{margin-bottom:.75rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic;line-height:1.6}.verse-ref{letter-spacing:2px;text-transform:uppercase;color:var(--passport-gold);font-family:Montserrat,sans-serif;font-size:.7rem}.airplane-animation{width:120px;height:100px;position:absolute;bottom:50px;left:50%;transform:translate(-50%)}.plane-trail{border:none;border-bottom:2px dashed #fff6;border-radius:0 0 50px;width:80px;height:50px;animation:3s ease-in-out infinite trailDraw;position:absolute;bottom:20px;left:10px}@keyframes trailDraw{0%,to{opacity:.3}50%{opacity:.8}}.plane-icon{color:#fff;font-size:1.75rem;animation:3s ease-in-out infinite planeFly;position:absolute;top:0;right:10px}@keyframes planeFly{0%{opacity:0;transform:translate(0)rotate(-30deg)}20%{opacity:1}to{opacity:0;transform:translate(-60px,-30px)rotate(-30deg)}}.heart-start{font-size:1rem;animation:2s ease-in-out infinite heartPulse;position:absolute;bottom:10px;left:5px}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.passport-container.opened .passport-back-cover{display:none}.open-book{width:100%;margin-top:1rem;display:none}.open-book.visible{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;padding:0 1rem;animation:.5s ease-out bookAppear;display:flex}@keyframes bookAppear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.page-navigation{justify-content:center;align-items:center;gap:1rem;width:100%;max-width:700px;margin-bottom:1rem;display:flex}.nav-btn{border:2px solid var(--passport-gold);width:36px;height:36px;color:var(--passport-gold);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:all .3s;display:flex}.nav-btn:hover:not(.disabled){background:var(--passport-gold);color:var(--passport-green)}.nav-btn.disabled{opacity:.3;cursor:not-allowed}.page-numbers{color:#fffc;align-items:center;gap:4px;font-family:Cormorant Garamond,serif;font-size:1.1rem;display:flex}.current-page{color:var(--passport-gold);text-align:center;min-width:20px;font-size:1.3rem;font-weight:600}.page-separator{color:#ffffff80;margin:0 2px}.total-pages{color:#fff9;font-size:1rem}.book-container{box-sizing:border-box;opacity:0;justify-content:center;align-items:center;width:100%;min-height:460px;padding:0 1rem;transition:opacity .3s;display:flex}.book-container.ready{opacity:1;animation:.8s cubic-bezier(.34,1.56,.64,1) forwards bookEntrance}@keyframes bookEntrance{0%{opacity:0;transform:scale(.85)translateY(30px)}50%{opacity:1;transform:scale(1.02)translateY(-5px)}to{opacity:1;transform:scale(1)translateY(0)}}.passport-flipbook{border-radius:8px;box-shadow:0 10px 40px #0000004d}.flipbook-wrapper{justify-content:center;align-items:center;width:100%;max-width:900px;margin:0 auto;display:flex;position:relative}.page-turn-sparkles{pointer-events:none;z-index:100;opacity:0;width:80px;height:80px;position:absolute}.page-turn-sparkles.active{opacity:1;animation:.7s cubic-bezier(.68,-.55,.265,1.55) forwards sparkleContainerBurst}@keyframes sparkleContainerBurst{0%{opacity:1;transform:scale(.5)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(1)}}.sparkle{color:var(--passport-gold);opacity:0;text-shadow:0 0 10px var(--passport-gold), 0 0 20px #c9a962cc;filter:drop-shadow(0 0 5px var(--passport-gold));font-size:14px;position:absolute}.page-turn-sparkles.top-right .sparkle-1{font-size:18px;inset:10px 10px auto auto}.page-turn-sparkles.top-right .sparkle-2{font-size:12px;inset:5px 30px auto auto}.page-turn-sparkles.top-right .sparkle-3{font-size:14px;inset:25px 5px auto auto}.page-turn-sparkles.top-right .sparkle-4{font-size:10px;inset:0 50px auto auto}.page-turn-sparkles.top-right .sparkle-5{font-size:16px;inset:40px 15px auto auto}.page-turn-sparkles.top-right .sparkle-6{font-size:11px;inset:20px 40px auto auto}.page-turn-sparkles.top-right .sparkle-7{font-size:13px;inset:50px 0 auto auto}.page-turn-sparkles.top-right .sparkle-8{font-size:15px;inset:35px 50px auto auto}.page-turn-sparkles.top-left .sparkle-1{font-size:18px;inset:10px auto auto 10px}.page-turn-sparkles.top-left .sparkle-2{font-size:12px;inset:5px auto auto 30px}.page-turn-sparkles.top-left .sparkle-3{font-size:14px;inset:25px auto auto 5px}.page-turn-sparkles.top-left .sparkle-4{font-size:10px;inset:0 auto auto 50px}.page-turn-sparkles.top-left .sparkle-5{font-size:16px;inset:40px auto auto 15px}.page-turn-sparkles.top-left .sparkle-6{font-size:11px;inset:20px auto auto 40px}.page-turn-sparkles.top-left .sparkle-7{font-size:13px;inset:50px auto auto 0}.page-turn-sparkles.top-left .sparkle-8{font-size:15px;inset:35px auto auto 50px}.page-turn-sparkles.bottom-right .sparkle-1{font-size:18px;inset:auto 10px 10px auto}.page-turn-sparkles.bottom-right .sparkle-2{font-size:12px;inset:auto 30px 5px auto}.page-turn-sparkles.bottom-right .sparkle-3{font-size:14px;inset:auto 5px 25px auto}.page-turn-sparkles.bottom-right .sparkle-4{font-size:10px;inset:auto 50px 0 auto}.page-turn-sparkles.bottom-right .sparkle-5{font-size:16px;inset:auto 15px 40px auto}.page-turn-sparkles.bottom-right .sparkle-6{font-size:11px;inset:auto 40px 20px auto}.page-turn-sparkles.bottom-right .sparkle-7{font-size:13px;inset:auto 0 50px auto}.page-turn-sparkles.bottom-right .sparkle-8{font-size:15px;inset:auto 50px 35px auto}.page-turn-sparkles.bottom-left .sparkle-1{font-size:18px;inset:auto auto 10px 10px}.page-turn-sparkles.bottom-left .sparkle-2{font-size:12px;inset:auto auto 5px 30px}.page-turn-sparkles.bottom-left .sparkle-3{font-size:14px;inset:auto auto 25px 5px}.page-turn-sparkles.bottom-left .sparkle-4{font-size:10px;inset:auto auto 0 50px}.page-turn-sparkles.bottom-left .sparkle-5{font-size:16px;inset:auto auto 40px 15px}.page-turn-sparkles.bottom-left .sparkle-6{font-size:11px;inset:auto auto 20px 40px}.page-turn-sparkles.bottom-left .sparkle-7{font-size:13px;inset:auto auto 50px 0}.page-turn-sparkles.bottom-left .sparkle-8{font-size:15px;inset:auto auto 35px 50px}.page-turn-sparkles.active.top-right .sparkle-1{animation:.7s cubic-bezier(.68,-.55,.265,1.55) forwards burstTopRight1}.page-turn-sparkles.active.top-right .sparkle-2{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 30ms forwards burstTopRight2}.page-turn-sparkles.active.top-right .sparkle-3{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 60ms forwards burstTopRight3}.page-turn-sparkles.active.top-right .sparkle-4{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 90ms forwards burstTopRight4}.page-turn-sparkles.active.top-right .sparkle-5{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .12s forwards burstTopRight5}.page-turn-sparkles.active.top-right .sparkle-6{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .15s forwards burstTopRight6}.page-turn-sparkles.active.top-right .sparkle-7{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .18s forwards burstTopRight7}.page-turn-sparkles.active.top-right .sparkle-8{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .21s forwards burstTopRight8}@keyframes burstTopRight1{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(15px,-15px)scale(1.5)rotate(90deg)}to{opacity:0;transform:translate(60px,-60px)scale(0)rotate(360deg)}}@keyframes burstTopRight2{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(25px,-10px)scale(1.3)rotate(-90deg)}to{opacity:0;transform:translate(80px,-40px)scale(0)rotate(-360deg)}}@keyframes burstTopRight3{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(20px,15px)scale(1.4)rotate(120deg)}to{opacity:0;transform:translate(70px,50px)scale(0)rotate(400deg)}}@keyframes burstTopRight4{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(10px,-30px)scale(1.2)rotate(-60deg)}to{opacity:0;transform:translate(30px,-100px)scale(0)rotate(-300deg)}}@keyframes burstTopRight5{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(30px,5px)scale(1.5)rotate(45deg)}to{opacity:0;transform:translate(100px,20px)scale(0)rotate(270deg)}}@keyframes burstTopRight6{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(5px,-20px)scale(1.3)rotate(-120deg)}to{opacity:0;transform:translate(25px,-70px)scale(0)rotate(-400deg)}}@keyframes burstTopRight7{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(35px,20px)scale(1.4)rotate(180deg)}to{opacity:0;transform:translate(110px,70px)scale(0)rotate(540deg)}}@keyframes burstTopRight8{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(20px,-5px)scale(1.2)rotate(-45deg)}to{opacity:0;transform:translate(70px,-20px)scale(0)rotate(-270deg)}}.page-turn-sparkles.active.top-left .sparkle-1{animation:.7s cubic-bezier(.68,-.55,.265,1.55) forwards burstTopLeft1}.page-turn-sparkles.active.top-left .sparkle-2{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 30ms forwards burstTopLeft2}.page-turn-sparkles.active.top-left .sparkle-3{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 60ms forwards burstTopLeft3}.page-turn-sparkles.active.top-left .sparkle-4{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 90ms forwards burstTopLeft4}.page-turn-sparkles.active.top-left .sparkle-5{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .12s forwards burstTopLeft5}.page-turn-sparkles.active.top-left .sparkle-6{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .15s forwards burstTopLeft6}.page-turn-sparkles.active.top-left .sparkle-7{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .18s forwards burstTopLeft7}.page-turn-sparkles.active.top-left .sparkle-8{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .21s forwards burstTopLeft8}@keyframes burstTopLeft1{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-15px,-15px)scale(1.5)rotate(-90deg)}to{opacity:0;transform:translate(-60px,-60px)scale(0)rotate(-360deg)}}@keyframes burstTopLeft2{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-25px,-10px)scale(1.3)rotate(90deg)}to{opacity:0;transform:translate(-80px,-40px)scale(0)rotate(360deg)}}@keyframes burstTopLeft3{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-20px,15px)scale(1.4)rotate(-120deg)}to{opacity:0;transform:translate(-70px,50px)scale(0)rotate(-400deg)}}@keyframes burstTopLeft4{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-10px,-30px)scale(1.2)rotate(60deg)}to{opacity:0;transform:translate(-30px,-100px)scale(0)rotate(300deg)}}@keyframes burstTopLeft5{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-30px,5px)scale(1.5)rotate(-45deg)}to{opacity:0;transform:translate(-100px,20px)scale(0)rotate(-270deg)}}@keyframes burstTopLeft6{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-5px,-20px)scale(1.3)rotate(120deg)}to{opacity:0;transform:translate(-25px,-70px)scale(0)rotate(400deg)}}@keyframes burstTopLeft7{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-35px,20px)scale(1.4)rotate(-180deg)}to{opacity:0;transform:translate(-110px,70px)scale(0)rotate(-540deg)}}@keyframes burstTopLeft8{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-20px,-5px)scale(1.2)rotate(45deg)}to{opacity:0;transform:translate(-70px,-20px)scale(0)rotate(270deg)}}.page-turn-sparkles.active.bottom-right .sparkle-1{animation:.7s cubic-bezier(.68,-.55,.265,1.55) forwards burstBottomRight1}.page-turn-sparkles.active.bottom-right .sparkle-2{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 30ms forwards burstBottomRight2}.page-turn-sparkles.active.bottom-right .sparkle-3{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 60ms forwards burstBottomRight3}.page-turn-sparkles.active.bottom-right .sparkle-4{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 90ms forwards burstBottomRight4}.page-turn-sparkles.active.bottom-right .sparkle-5{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .12s forwards burstBottomRight5}.page-turn-sparkles.active.bottom-right .sparkle-6{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .15s forwards burstBottomRight6}.page-turn-sparkles.active.bottom-right .sparkle-7{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .18s forwards burstBottomRight7}.page-turn-sparkles.active.bottom-right .sparkle-8{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .21s forwards burstBottomRight8}@keyframes burstBottomRight1{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(15px,15px)scale(1.5)rotate(90deg)}to{opacity:0;transform:translate(60px,60px)scale(0)rotate(360deg)}}@keyframes burstBottomRight2{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(25px,10px)scale(1.3)rotate(-90deg)}to{opacity:0;transform:translate(80px,40px)scale(0)rotate(-360deg)}}@keyframes burstBottomRight3{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(20px,-15px)scale(1.4)rotate(120deg)}to{opacity:0;transform:translate(70px,-50px)scale(0)rotate(400deg)}}@keyframes burstBottomRight4{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(10px,30px)scale(1.2)rotate(-60deg)}to{opacity:0;transform:translate(30px,100px)scale(0)rotate(-300deg)}}@keyframes burstBottomRight5{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(30px,-5px)scale(1.5)rotate(45deg)}to{opacity:0;transform:translate(100px,-20px)scale(0)rotate(270deg)}}@keyframes burstBottomRight6{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(5px,20px)scale(1.3)rotate(-120deg)}to{opacity:0;transform:translate(25px,70px)scale(0)rotate(-400deg)}}@keyframes burstBottomRight7{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(35px,-20px)scale(1.4)rotate(180deg)}to{opacity:0;transform:translate(110px,-70px)scale(0)rotate(540deg)}}@keyframes burstBottomRight8{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(20px,5px)scale(1.2)rotate(-45deg)}to{opacity:0;transform:translate(70px,20px)scale(0)rotate(-270deg)}}.page-turn-sparkles.active.bottom-left .sparkle-1{animation:.7s cubic-bezier(.68,-.55,.265,1.55) forwards burstBottomLeft1}.page-turn-sparkles.active.bottom-left .sparkle-2{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 30ms forwards burstBottomLeft2}.page-turn-sparkles.active.bottom-left .sparkle-3{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 60ms forwards burstBottomLeft3}.page-turn-sparkles.active.bottom-left .sparkle-4{animation:.7s cubic-bezier(.68,-.55,.265,1.55) 90ms forwards burstBottomLeft4}.page-turn-sparkles.active.bottom-left .sparkle-5{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .12s forwards burstBottomLeft5}.page-turn-sparkles.active.bottom-left .sparkle-6{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .15s forwards burstBottomLeft6}.page-turn-sparkles.active.bottom-left .sparkle-7{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .18s forwards burstBottomLeft7}.page-turn-sparkles.active.bottom-left .sparkle-8{animation:.7s cubic-bezier(.68,-.55,.265,1.55) .21s forwards burstBottomLeft8}@keyframes burstBottomLeft1{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-15px,15px)scale(1.5)rotate(-90deg)}to{opacity:0;transform:translate(-60px,60px)scale(0)rotate(-360deg)}}@keyframes burstBottomLeft2{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-25px,10px)scale(1.3)rotate(90deg)}to{opacity:0;transform:translate(-80px,40px)scale(0)rotate(360deg)}}@keyframes burstBottomLeft3{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-20px,-15px)scale(1.4)rotate(-120deg)}to{opacity:0;transform:translate(-70px,-50px)scale(0)rotate(-400deg)}}@keyframes burstBottomLeft4{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-10px,30px)scale(1.2)rotate(60deg)}to{opacity:0;transform:translate(-30px,100px)scale(0)rotate(300deg)}}@keyframes burstBottomLeft5{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-30px,-5px)scale(1.5)rotate(-45deg)}to{opacity:0;transform:translate(-100px,-20px)scale(0)rotate(-270deg)}}@keyframes burstBottomLeft6{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-5px,20px)scale(1.3)rotate(120deg)}to{opacity:0;transform:translate(-25px,70px)scale(0)rotate(400deg)}}@keyframes burstBottomLeft7{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-35px,-20px)scale(1.4)rotate(-180deg)}to{opacity:0;transform:translate(-110px,-70px)scale(0)rotate(-540deg)}}@keyframes burstBottomLeft8{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:translate(-20px,5px)scale(1.2)rotate(45deg)}to{opacity:0;transform:translate(-70px,20px)scale(0)rotate(270deg)}}.flipbook-wrapper.flipping:before{content:"";pointer-events:none;z-index:99;background:radial-gradient(circle,#c9a96299 0%,#c9a9624d 40%,#0000 70%);border-radius:50%;width:60px;height:60px;animation:.6s cubic-bezier(.68,-.55,.265,1.55) forwards cornerGlowBurst;position:absolute}.flipbook-wrapper.flipping.top-right:before{inset:-10px -10px auto auto}.flipbook-wrapper.flipping.top-left:before{inset:-10px auto auto -10px}.flipbook-wrapper.flipping.bottom-right:before{inset:auto -10px -10px auto}.flipbook-wrapper.flipping.bottom-left:before{inset:auto auto -10px -10px}@keyframes cornerGlowBurst{0%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(2)}}.stf__parent{margin:0 auto!important;position:relative!important;left:0!important;right:0!important}.stf__wrapper{margin:0 auto!important}.flipbook-wrapper .stf__parent{position:relative!important}.flipbook-wrapper.flipping .stf__parent:before{content:"";pointer-events:none;z-index:99;background:radial-gradient(circle,#c9a96299 0%,#c9a9624d 40%,#0000 70%);border-radius:50%;width:60px;height:60px;animation:.6s cubic-bezier(.68,-.55,.265,1.55) forwards cornerGlowBurst;position:absolute}.flipbook-wrapper.flipping.top-right .stf__parent:before{inset:-10px -10px auto auto}.flipbook-wrapper.flipping.top-left .stf__parent:before{inset:-10px auto auto -10px}.flipbook-wrapper.flipping.bottom-right .stf__parent:before{inset:auto -10px -10px auto}.flipbook-wrapper.flipping.bottom-left .stf__parent:before{inset:auto auto -10px -10px}.book-page{background:var(--passport-cream);box-sizing:border-box;flex-direction:column;justify-content:flex-start;height:100%;padding:.4rem;display:flex;overflow:hidden}.book-page.page-green{background:var(--passport-green);justify-content:center;align-items:center;display:flex}.book-page.page-cream{background:linear-gradient(135deg, var(--passport-cream) 0%, #f5f0e8 50%, var(--passport-cream) 100%)}.book-page:before{content:"";pointer-events:none;z-index:10;background:linear-gradient(90deg,#00000014 0%,#00000005 50%,#0000 100%);width:20px;height:100%;position:absolute;top:0;left:0}.book-page .final-page{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.final-hearts{margin-top:1rem;font-size:2rem;animation:1.5s ease-in-out infinite heartPulse}.book-spread{perspective:2000px;perspective-origin:50%;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;gap:0;width:600px;max-width:95vw;margin:0 auto;display:flex}.book-left-page{background:var(--passport-green);z-index:1;border-radius:8px 0 0 8px;width:50%;height:550px;padding:1.25rem;transition:transform .3s;position:relative;overflow:hidden;box-shadow:inset -5px 0 15px #0003,-5px 5px 20px #0000004d}.book-left-page:hover{transform:scale(1.01)}.book-left-page:after{content:"";pointer-events:none;background:linear-gradient(270deg,#0003 0%,#00000014 40%,#0000 100%);width:25px;height:100%;position:absolute;top:0;right:0}.left-page-content{color:#fff;height:100%;transition:opacity .5s}.left-page-content.changing{opacity:.7}.back-cover-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.back-cover-inner .plane-icon-small{margin-bottom:1.5rem;font-size:2.5rem}.back-cover-inner .bible-verse{max-width:90%}.back-cover-inner .verse-text{color:#fff;margin-bottom:.75rem;font-family:Great Vibes,cursive;font-size:1.5rem;line-height:1.4}.back-cover-inner .verse-ref{color:var(--passport-gold);letter-spacing:2px;font-family:Montserrat,sans-serif;font-size:.85rem}.book-right-area{width:50%;height:550px;transform-style:preserve-3d;cursor:pointer;transition:transform .3s;position:relative}.book-right-area:after{content:"";opacity:0;z-index:100;pointer-events:none;background:linear-gradient(135deg,#0000 50%,#2d4a3e1a 50%);border-radius:0 0 8px;width:50px;height:50px;transition:opacity .3s,transform .3s;position:absolute;bottom:0;right:0}.book-right-area:hover:after{opacity:1;transform:translate(-5px,-5px)}.flip-page{width:100%;height:100%;transform-style:preserve-3d;transform-origin:0;z-index:10;transition:transform 1s cubic-bezier(.4,0,.2,1),box-shadow .5s;position:absolute;top:0;left:0}.book-right-area:hover .flip-page:not(.flipping-left):not(.flipping-right){transform:rotateY(-5deg)}.flip-page-front{background:var(--passport-cream);backface-visibility:hidden;border-radius:0 8px 8px 0;width:100%;height:100%;padding:1.25rem;transition:box-shadow .3s;position:absolute;top:0;left:0;overflow:hidden;box-shadow:2px 0 5px #0000001a,5px 5px 20px #00000026}.book-right-area:hover .flip-page-front{box-shadow:3px 0 8px #00000026,8px 8px 25px #0003}.flip-page-front:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000001f 0%,#0000000d 40%,#0000 100%);width:25px;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.flip-page-front:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(270deg,#0000 0%,#0000001a 100%);width:100%;height:100%;transition:opacity .5s;position:absolute;top:0;right:0}.flip-page.flipping-left .flip-page-front:after{animation:1s forwards shadowFadeIn}@keyframes shadowFadeIn{0%{opacity:0}50%{opacity:.3}to{opacity:0}}.flip-page-back{background:linear-gradient(135deg, var(--passport-cream) 0%, #f5f0e8 50%, var(--passport-cream) 100%);backface-visibility:hidden;border-radius:0 8px 8px 0;width:100%;height:100%;position:absolute;top:0;left:0;transform:rotateY(180deg);box-shadow:-3px 0 10px #0003,-8px 5px 25px #00000026}.page-back-pattern{background:repeating-linear-gradient(0deg,#0000,#0000 20px,#2d4a3e14 20px 21px);border-radius:0 8px 8px 0;width:100%;height:100%}.flip-page.flipping-left{z-index:20;animation:1s cubic-bezier(.4,0,.2,1) forwards flipLeft}@keyframes flipLeft{0%{transform:rotateY(0)scale(1);box-shadow:2px 0 5px #0000001a}25%{transform:rotateY(-45deg)scale(1.02);box-shadow:10px 5px 20px #00000040}50%{transform:rotateY(-90deg)scale(1.03);box-shadow:15px 8px 30px #0000004d}75%{transform:rotateY(-135deg)scale(1.02);box-shadow:10px 5px 20px #00000040}to{transform:rotateY(-180deg)scale(1);box-shadow:-2px 0 5px #0000001a}}.flip-page.flipping-right{z-index:20;animation:1s cubic-bezier(.4,0,.2,1) forwards flipRight}@keyframes flipRight{0%{transform:rotateY(-180deg)scale(1);box-shadow:-2px 0 5px #0000001a}25%{transform:rotateY(-135deg)scale(1.02);box-shadow:-10px 5px 20px #00000040}50%{transform:rotateY(-90deg)scale(1.03);box-shadow:-15px 8px 30px #0000004d}75%{transform:rotateY(-45deg)scale(1.02);box-shadow:-10px 5px 20px #00000040}to{transform:rotateY(0)scale(1);box-shadow:2px 0 5px #0000001a}}.next-page-underneath{background:var(--passport-cream);z-index:5;opacity:0;border-radius:0 8px 8px 0;width:100%;height:100%;padding:1.5rem;transition:opacity .4s,transform .5s;position:absolute;top:0;left:0;transform:scale(.98);box-shadow:inset 8px 0 20px #00000014}:is(.book-right-area:has(.flipping-left) .next-page-underneath,.book-right-area:has(.flipping-right) .next-page-underneath){opacity:1;transform:scale(1)}.page-content{box-sizing:border-box;height:100%;position:relative;overflow:hidden}.book-page .page-content{box-sizing:border-box;flex-direction:column;gap:.2rem;height:100%;padding:.4rem .5rem;display:flex;overflow:hidden}.book-left-page .page-content{background:var(--passport-cream);border-radius:8px 0 0 8px;height:calc(100% + 2.5rem);margin:-1.25rem 0 -1.25rem -1.25rem;padding:1rem;animation:.6s forwards fadeInContentLeft;overflow:hidden}@keyframes fadeInContentLeft{0%{opacity:.7;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.book-left-page .back-cover-inner{background:0 0;border-radius:0;margin:0;padding:0}.parents-section{text-align:center;border-bottom:1px solid #2d4a3e33;margin-bottom:.2rem;padding-bottom:.2rem}.parents-intro{letter-spacing:1px;margin:.1rem 0;font-family:Montserrat,sans-serif;font-size:.5rem;font-weight:500;color:#222!important}.parents-names{justify-content:space-around;margin-top:.5rem;display:flex}.parent-group{text-align:center}.parent-name{letter-spacing:.5px;margin:.1rem 0;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;color:#111!important}.couple-section{text-align:center;padding:.2rem 0}.we-text{letter-spacing:2px;font-family:Montserrat,sans-serif;font-size:.4rem;color:#222!important}.couple-script{margin:.1rem 0;font-family:Great Vibes,cursive;font-size:1.35rem;line-height:1;color:#1a5f7a!important}.and-text{font-family:Great Vibes,cursive;font-size:.85rem;color:#1a5f7a!important}.invite-text{letter-spacing:.5px;margin:.05rem 0;font-family:Montserrat,sans-serif;font-size:.38rem;color:#222!important}.passport-info-section{background:#2d4a3e0d;border-radius:6px;margin-top:.2rem;padding:.3rem}.passport-to{letter-spacing:1.5px;text-align:center;border-bottom:1px solid #2d4a3e4d;margin-bottom:.25rem;padding-bottom:.2rem;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;color:#222!important}.passport-details-grid{flex-direction:column;gap:.15rem;display:flex}.detail-row{gap:.4rem;display:flex}.detail-label{letter-spacing:.5px;min-width:80px;font-family:Montserrat,sans-serif;font-size:.5rem;font-weight:500;color:#222!important}.detail-value{letter-spacing:.5px;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;color:#111!important}.couple-seal{background:var(--passport-green);color:#fff;border-radius:4px;justify-content:center;align-items:center;gap:.3rem;margin:.3rem 0 .15rem;padding:.25rem .4rem;font-family:Cormorant Garamond,serif;font-size:.85rem;font-weight:700;display:flex}.seal-and{color:var(--passport-gold);font-size:.6rem}.cheers-text{letter-spacing:.5px;color:#888;text-align:center;margin:.05rem 0;font-family:Montserrat,sans-serif;font-size:.35rem}.snap-share-section,.rsvp-info-section,.attire-section,.gift-section{text-align:center;margin-bottom:.35rem}.snap-share-section.compact,.rsvp-info-section.compact,.gift-section.compact{border-bottom:1px dashed #2c553033;margin-bottom:.5rem;padding-bottom:.4rem}.snap-share-section.compact:last-child,.rsvp-info-section.compact:last-child,.gift-section.compact:last-child{border-bottom:none;margin-bottom:0}.rsvp-info-section.compact .rsvp-page-btn{margin-top:.25rem;padding:.35rem .8rem;font-size:.5rem}.color-palette{text-align:center;margin-top:.5rem}.palette-title{color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.3rem;font-family:Montserrat,sans-serif;font-size:.45rem}.colors{justify-content:center;gap:.5rem;display:flex}.color-swatch{border:2px solid #fffc;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 4px #00000026}.section-title{margin-bottom:.15rem;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;color:#222!important}.section-title.script{font-family:Great Vibes,cursive;font-size:1.1rem;color:#1a5f7a!important}.snap-text,.rsvp-note,.rsvp-important,.attire-text,.gift-text{letter-spacing:.5px;margin:.08rem 0;font-family:Montserrat,sans-serif;font-size:.45rem;font-weight:500;line-height:1.4;color:#222!important}.hashtag{word-break:break-word;margin-top:.15rem;font-family:Montserrat,sans-serif;font-size:.5rem;font-weight:700;line-height:1.3;color:#0d6e85!important}.rsvp-seats{margin-bottom:.3rem;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;color:#1a5f7a!important}.rsvp-contact{margin:.1rem 0;font-family:Montserrat,sans-serif;font-size:.5rem;color:#222!important}.rsvp-page-btn{background:var(--passport-green);color:#fff;cursor:pointer;border:none;border-radius:15px;margin-top:.35rem;padding:.4rem 1rem;font-family:Montserrat,sans-serif;font-size:.55rem;transition:all .3s}.rsvp-page-btn:hover{background:var(--passport-dark);transform:scale(1.05)}.attire-section{flex-direction:column;justify-content:center;align-items:center;height:100%;padding:1rem;display:flex}.attire-colors{flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:1rem;margin:1rem 0;display:flex}.color-swatch{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:45px;height:45px;display:flex;position:relative;box-shadow:0 2px 8px #00000026}.color-name{color:#333;text-align:center;white-space:nowrap;font-family:Montserrat,sans-serif;font-size:.4rem;font-weight:500;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)}.attire-icons{justify-content:center;align-items:center;gap:.8rem;margin-top:1.5rem;display:flex}.attire-icon{font-size:1.5rem}.attire-type{text-align:center;letter-spacing:1px;font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;line-height:1.3;color:#222!important}.sponsors-attire{border-top:1px dashed #6b8fa34d;justify-content:center;gap:1.5rem;margin-top:.8rem;padding-top:.6rem;display:flex}.sponsor-attire-item{text-align:center;flex-direction:column;align-items:center;display:flex}.sponsor-attire-label{color:var(--passport-green);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.15rem;font-family:Montserrat,sans-serif;font-size:.5rem;font-weight:700}.sponsor-attire-desc{color:#555;font-family:Montserrat,sans-serif;font-size:.4rem;font-weight:500;line-height:1.3}.map-section{text-align:center;margin-bottom:.5rem}.venue-card{background:#2d4a3e0d;border-radius:6px;margin:.4rem 0;padding:.5rem}.venue-card .venue-name{color:var(--passport-green);font-family:Montserrat,sans-serif;font-size:.6rem;font-weight:600}.venue-card .venue-address,.venue-card .venue-city{color:#666;margin-top:.15rem;font-family:Montserrat,sans-serif;font-size:.5rem}.qr-code-container{z-index:10;flex-direction:column;align-items:center;margin:.4rem 0;display:flex;position:relative}.qr-code-container a{pointer-events:auto;cursor:pointer;z-index:15;display:block;position:relative}.qr-code-image{border:2px solid var(--passport-green);background:#fff;border-radius:6px;width:60px;height:60px;padding:3px;transition:all .3s}.qr-code-image:hover{transform:scale(1.05);box-shadow:0 4px 12px #6b8fa34d}.qr-code-label{color:var(--passport-green);margin-top:.2rem;font-family:Montserrat,sans-serif;font-size:.4rem;font-weight:500}.page-8-content{flex-direction:column;justify-content:space-between;gap:.3rem;height:100%;display:flex}.countdown-section.compact{margin-bottom:.2rem;padding:.3rem}.countdown-section.compact .countdown-title{margin-bottom:.3rem;font-size:.55rem}.countdown-section.compact .countdown-timer{gap:.3rem}.countdown-section.compact .countdown-item{min-width:32px;padding:.25rem .35rem}.countdown-section.compact .countdown-number{font-size:.85rem}.countdown-section.compact .countdown-label{font-size:.35rem}.countdown-section.compact .countdown-separator{font-size:.7rem}.map-section.with-qr{text-align:center;margin-bottom:.3rem}.venue-name-header{color:var(--passport-green);margin:.2rem 0 .1rem;font-family:Montserrat,sans-serif;font-size:.6rem;font-weight:600}.venue-address-sub{color:#666;margin:0 0 .3rem;font-family:Montserrat,sans-serif;font-size:.45rem}.location-actions{justify-content:center;align-items:center;gap:.6rem;display:flex}.map-link-btn{background:var(--passport-green);color:#fff;cursor:pointer;pointer-events:auto;z-index:10;border-radius:15px;align-items:center;gap:.2rem;padding:.3rem .6rem;font-family:Montserrat,sans-serif;font-size:.45rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex;position:relative}.map-link-btn:hover{background:var(--passport-dark);transform:translateY(-1px)}.map-link-btn:active{transform:scale(.95)}.map-link-btn span{font-size:.5rem}.qr-code-mini{z-index:10;flex-direction:column;align-items:center;display:flex;position:relative}.qr-code-mini a{pointer-events:auto;cursor:pointer;display:block}.qr-mini-img{border:1.5px solid var(--passport-green);background:#fff;border-radius:4px;width:40px;height:40px;padding:2px;transition:all .3s}.qr-mini-img:hover{transform:scale(1.05);box-shadow:0 2px 8px #6b8fa34d}.qr-mini-label{color:var(--passport-green);margin-top:.1rem;font-family:Montserrat,sans-serif;font-size:.35rem;font-weight:500}.calendar-section.compact{margin-top:.3rem;padding-top:.3rem}.calendar-section.compact .section-title{margin-bottom:.3rem;font-size:.5rem}.calendar-section.compact .calendar-buttons{gap:.3rem}.calendar-section.compact .calendar-btn{min-width:42px;padding:.25rem .4rem;font-size:.35rem}.calendar-section.compact .calendar-btn .cal-icon{font-size:.65rem}.map-link{background:var(--passport-green);color:#fff;border-radius:15px;padding:.35rem .8rem;font-family:Montserrat,sans-serif;font-size:.5rem;text-decoration:none;transition:all .3s;display:inline-block}.map-link:hover{background:var(--passport-dark)}.calendar-section{text-align:center;z-index:10;border-top:1px dashed #6b8fa34d;margin-top:.6rem;padding-top:.5rem;position:relative}.calendar-section .section-title{margin-bottom:.4rem;font-size:.55rem}.calendar-buttons{z-index:15;flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex;position:relative}.calendar-btn{cursor:pointer;pointer-events:auto;z-index:20;border-radius:8px;flex-direction:column;align-items:center;gap:.15rem;min-width:50px;padding:.35rem .5rem;font-family:Montserrat,sans-serif;font-size:.4rem;font-weight:600;text-decoration:none;transition:all .3s;display:flex;position:relative}.calendar-btn .cal-icon{font-size:.75rem}.calendar-btn.google-cal{color:#fff;background:linear-gradient(135deg,#4285f4,#34a853)}.calendar-btn.google-cal:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4285f466}.calendar-btn.google-cal:active{transform:scale(.95)}.calendar-btn.apple-cal{color:#fff;background:linear-gradient(135deg,#333,#555)}.calendar-btn.apple-cal:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.calendar-btn.apple-cal:active{transform:scale(.95)}.calendar-btn.outlook-cal{color:#fff;background:linear-gradient(135deg,#0078d4,#00bcf2)}.calendar-btn.outlook-cal:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0078d466}.calendar-btn.outlook-cal:active{transform:scale(.95)}.final-message{text-align:center;padding:.5rem}.thank-you{color:var(--passport-green);margin:.15rem 0;font-family:Cormorant Garamond,serif;font-size:.8rem;font-style:italic}.final-couple{margin:.5rem 0}.final-names{color:var(--passport-green);font-family:Great Vibes,cursive;font-size:1.25rem}.final-date{letter-spacing:2px;color:#8b5a2b;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600}.boarding-pass-offcanvas{z-index:50;transition:transform .5s cubic-bezier(.4,0,.2,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% - 50px))}.boarding-pass-offcanvas.show{transform:translateY(0)}.boarding-pass-offcanvas.show~.close-passport-btn,.boarding-pass-offcanvas.show+.close-passport-btn{display:none}.bp-hint-overlay{z-index:60;pointer-events:auto;cursor:pointer;justify-content:center;align-items:flex-start;display:flex;position:absolute;inset:0 0 auto}.bp-hint-gesture{flex-direction:column;align-items:center;padding:10px 20px;animation:1s ease-in-out infinite hintBounce;display:flex;position:relative}.bp-hint-hand{filter:drop-shadow(0 4px 8px #0000004d);z-index:2;font-size:2.5rem;animation:1s ease-in-out infinite tapGesture}.bp-hint-text{color:#fff;white-space:nowrap;background:#000000b3;border-radius:20px;margin-top:8px;padding:6px 12px;font-family:Montserrat,sans-serif;font-size:.7rem;font-weight:600;animation:2s ease-in-out infinite fadeInOut}.bp-tap-rings{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bp-tap-ring{border:2px solid #fff9;border-radius:50%;width:40px;height:40px;animation:1.5s ease-out infinite tapRingExpand;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bp-tap-ring.ring-2{animation-delay:.3s}.bp-tap-ring.ring-3{animation-delay:.6s}@keyframes hintBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes tapGesture{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes tapRingExpand{0%{opacity:.8;width:30px;height:30px}to{opacity:0;width:80px;height:80px}}@keyframes fadeInOut{0%,to{opacity:.9}50%{opacity:1}}.boarding-pass-handle{background:var(--passport-green);cursor:pointer;border-radius:16px 16px 0 0;flex-direction:column;align-items:center;gap:6px;padding:12px 20px;display:flex}.handle-bar{background:#ffffff80;border-radius:2px;width:40px;height:4px}.handle-text{color:#fff;letter-spacing:1px;font-family:Montserrat,sans-serif;font-size:.7rem}.boarding-pass-content{background:linear-gradient(180deg, var(--passport-cream) 0%, #f0ece3 100%);height:auto;max-height:none;display:flex;overflow:visible}.bp-left{background:linear-gradient(#f8f6f0 0%,#e8e4db 100%);border-right:2px dashed #ccc;flex-direction:column;flex:1;padding:.75rem;display:flex}.bp-love-tag{text-align:center;background:var(--passport-green);color:#fff;letter-spacing:.8px;border-radius:4px;margin-bottom:.5rem;padding:3px 8px;font-family:Montserrat,sans-serif;font-size:.4rem}.bp-save-date{text-align:center;margin-bottom:.5rem}.bp-save{color:var(--passport-green);font-family:Cormorant Garamond,serif;font-size:1rem;font-style:italic;display:block}.bp-the-date{color:var(--passport-green);margin-top:-3px;font-family:Great Vibes,cursive;font-size:1.4rem;display:block}.bp-info-grid{grid-template-columns:1fr 1fr;align-items:start;gap:.5rem .8rem;margin-bottom:.6rem;display:grid}.bp-info-grid .bp-info-item:last-child{text-align:center;border-top:1px dashed #2d4a3e33;grid-column:span 2;margin-top:.2rem;padding-top:.3rem}.bp-info-item{text-align:center;flex-direction:column;align-items:center;display:flex}.bp-label{letter-spacing:.8px;color:#888;text-transform:uppercase;margin-bottom:.1rem;font-family:Montserrat,sans-serif;font-size:.38rem}.bp-value,.bp-value-bold{color:var(--passport-green);font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:600}.bp-venues{background:#2d4a3e0d;border-radius:6px;margin-bottom:.4rem;padding:.4rem}.bp-venue{margin-bottom:.35rem}.bp-venue:last-child{margin-bottom:0}.bp-venue-label{letter-spacing:.8px;color:#888;font-family:Montserrat,sans-serif;font-size:.35rem;display:block}.bp-venue-name{color:var(--passport-green);font-family:Montserrat,sans-serif;font-size:.55rem;font-weight:600;display:block}.bp-venue-loc{color:#666;font-family:Montserrat,sans-serif;font-size:.45rem;display:block}.bp-initials-box{background:var(--passport-green);color:#fff;border-radius:6px;justify-content:center;align-items:center;gap:5px;margin-top:auto;padding:.35rem;font-family:Cormorant Garamond,serif;font-size:.9rem;font-weight:700;display:flex}.bp-heart{font-size:.6rem}.bp-perforation{border-left:2px dashed #ccc;width:0}.bp-right{background:linear-gradient(180deg, var(--passport-cream) 0%, #f5f2eb 100%);flex-direction:column;flex:1;padding:.75rem;display:flex}.bp-header{border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.35rem;display:flex}.bp-boarding-text{letter-spacing:2px;color:#888;font-family:Montserrat,sans-serif;font-size:.45rem}.bp-always{color:var(--passport-green);font-size:.7rem}.bp-invitation-text{text-align:center;margin-bottom:.5rem}.bp-invitation-text p{letter-spacing:1px;color:var(--passport-green);white-space:nowrap;margin:0;font-family:Montserrat,sans-serif;font-size:.45rem;line-height:1.4}.bp-event-box{background:#2d4a3e0d;border-radius:6px;justify-content:space-around;align-items:center;margin-bottom:.75rem;padding:.75rem;display:flex}.bp-ceremony{text-align:center}.bp-ceremony-label{color:var(--passport-green);font-family:Cormorant Garamond,serif;font-size:.75rem;font-style:italic;display:block}.bp-ceremony-time{color:#666;font-family:Montserrat,sans-serif;font-size:.6rem;display:block}.bp-date-display{text-align:center}.bp-month{color:var(--passport-green);font-family:Cormorant Garamond,serif;font-size:.75rem;font-style:italic;display:block}.bp-day{color:var(--passport-green);font-family:Montserrat,sans-serif;font-size:1.75rem;font-weight:700;line-height:1;display:block}.bp-year{color:var(--passport-green);font-family:Montserrat,sans-serif;font-size:.7rem;display:block}.bp-dress-code{text-align:center;border:1px dashed var(--passport-green);border-radius:6px;margin-bottom:.75rem;padding:.5rem}.bp-dress-label{letter-spacing:2px;color:#888;margin-bottom:2px;font-family:Montserrat,sans-serif;font-size:.45rem;display:block}.bp-dress-value{color:var(--passport-green);font-family:Cormorant Garamond,serif;font-size:.85rem;font-style:italic}.bp-rsvp-btn{background:var(--passport-green);color:#fff;letter-spacing:2px;cursor:pointer;border:none;border-radius:25px;margin-top:auto;padding:.6rem 1.5rem;font-family:Montserrat,sans-serif;font-size:.7rem;font-weight:600;transition:all .3s}.bp-rsvp-btn:hover{background:var(--passport-dark);transform:scale(1.02)}.rsvp-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.rsvp-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;max-height:90vh;padding:2rem;animation:.3s ease-out modalSlideIn;position:relative;overflow-y:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.rsvp-modal h2{color:var(--passport-green);text-align:center;margin-bottom:.5rem;font-family:Cormorant Garamond,serif;font-size:1.75rem}.rsvp-modal>p{text-align:center;color:#666;margin-bottom:1.5rem;font-size:.9rem}.rsvp-form-group{margin-bottom:1.25rem}.rsvp-form-group label{color:var(--passport-green);margin-bottom:.5rem;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:600;display:block}.rsvp-form-group input[type=text],.rsvp-form-group select,.rsvp-form-group textarea{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:.75rem;font-family:inherit;font-size:.9rem;transition:border-color .3s}.rsvp-form-group input:focus,.rsvp-form-group select:focus,.rsvp-form-group textarea:focus{border-color:var(--passport-green);outline:none}.rsvp-options{flex-wrap:wrap;gap:1rem;display:flex}.rsvp-option{cursor:pointer;text-align:center;border:2px solid #e0e0e0;border-radius:8px;flex:1;min-width:140px;padding:.75rem;transition:all .3s}.rsvp-option input{display:none}.rsvp-option span{font-size:.85rem}.rsvp-option.selected{border-color:var(--passport-green);background:#2d4a3e0d}.rsvp-submit{background:var(--passport-green);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:1rem;font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:600;transition:all .3s}.rsvp-submit:hover{background:var(--passport-dark)}.rsvp-submit:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.rsvp-error{color:#dc2626;text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.rsvp-modal-close{cursor:pointer;background:#f0f0f0;border:none;border-radius:50%;width:30px;height:30px;font-size:1rem;transition:all .3s;position:absolute;top:15px;right:15px}.rsvp-modal-close:hover{background:#e0e0e0}.rsvp-success{text-align:center;padding:1rem 0}.success-icon{margin-bottom:1rem;font-size:3rem}.success-name{color:var(--passport-green);font-family:Cormorant Garamond,serif;font-size:1.25rem;font-style:italic}.rsvp-close-btn{background:var(--passport-green);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:1.5rem;padding:.75rem 2rem;font-family:Montserrat,sans-serif;font-weight:600}.invitation-watermark{z-index:100;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#4b2d5ae6;border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;display:flex;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}.invitation-watermark p{color:#ffffffe6;margin:0;font-size:.6rem}.invitation-watermark .logica-brand{align-items:center;gap:4px;text-decoration:none;transition:all .3s;display:flex}.invitation-watermark .logica-brand:hover{transform:scale(1.05)}.invitation-watermark .logica-logo{object-fit:contain;filter:brightness(0)invert();opacity:.9;width:18px;height:18px}.invitation-watermark .logica-brand span{color:var(--passport-gold);letter-spacing:.5px;font-size:.65rem;font-weight:600}.invitation-watermark a{color:var(--passport-gold);text-decoration:none}@media (width>=1200px){.book-container{min-height:580px}.flipbook-wrapper{max-width:950px}}@media (width>=768px) and (width<=1199px){.book-container{min-height:560px}.flipbook-wrapper{max-width:850px}}@media (width>=481px) and (width<=767px){.book-container{min-height:480px}.flipbook-wrapper{max-width:100%;padding:0 .5rem}.open-book.visible{padding:0 .5rem}}.book-container.mobile{min-height:auto}.book-container.mobile .flipbook-wrapper{max-width:100%;padding:0}.passport-flipbook.portrait-mode{border-radius:12px;box-shadow:0 15px 50px #0000004d,0 5px 15px #0003}.book-container.mobile .book-page{-webkit-overflow-scrolling:touch;border-radius:8px;padding:.75rem;overflow:hidden auto}@media (width<=768px){.page-navigation{gap:.3rem;margin-bottom:.25rem}.nav-btn{width:28px;height:28px;font-size:1rem}.page-numbers{font-size:.95rem}.current-page{min-width:16px;font-size:1.1rem}.total-pages{font-size:.9rem}.open-book.visible{gap:.25rem;padding:.25rem}.close-passport-btn{padding:4px 8px;font-size:.7rem;top:5px;right:5px}.close-passport-btn .close-icon{font-size:.85rem}.close-passport-btn .close-text{display:none}.music-toggle-btn{border-radius:50%;padding:8px 10px;top:5px;left:5px}.music-toggle-btn .music-icon{width:20px;height:20px}.music-toggle-btn .music-icon svg{width:16px;height:16px}.music-toggle-btn .music-waves{display:none}.swipe-hint{text-align:center;color:#ffffffb3;margin-top:.25rem;padding:.15rem;font-family:Montserrat,sans-serif;font-size:.65rem;animation:3s ease-in-out infinite fadeInOut;display:block}@keyframes fadeInOut{0%,to{opacity:.5}50%{opacity:1}}.book-container.mobile .page-content{flex-direction:column;justify-content:space-between;height:100%;padding:.75rem;display:flex;overflow:hidden}.book-container.mobile .section-title{margin-bottom:.4rem;font-size:.85rem;color:#222!important}.book-container.mobile .section-title.script{font-size:1.4rem;color:#1a5f7a!important}.book-container.mobile .snap-text,.book-container.mobile .rsvp-note,.book-container.mobile .rsvp-important,.book-container.mobile .attire-text,.book-container.mobile .gift-text{margin:.2rem 0;font-size:.7rem;font-weight:500;line-height:1.5;color:#222!important}.book-container.mobile .attire-section{justify-content:flex-start;padding:1rem .5rem .5rem}.book-container.mobile .attire-colors{flex-wrap:nowrap;gap:.6rem;margin:1rem 0}.book-container.mobile .color-swatch{width:60px;height:60px}.book-container.mobile .color-name{font-size:.5rem;bottom:-18px}.book-container.mobile .attire-icons{margin-top:1.5rem}.book-container.mobile .attire-icon{font-size:2rem}.book-container.mobile .attire-type{font-size:.7rem}.book-container.mobile .sponsors-attire{gap:1rem;margin-top:.6rem;padding-top:.5rem}.book-container.mobile .sponsor-attire-label{margin-bottom:.1rem;font-size:.6rem}.book-container.mobile .sponsor-attire-desc{font-size:.5rem}.book-container.mobile .hashtag{word-break:break-word;margin-top:.15rem;font-size:.65rem;font-weight:700;line-height:1.3;color:#0d6e85!important}.book-container.mobile .rsvp-page-btn{margin-top:.6rem;padding:.6rem 1.2rem;font-size:.8rem}.book-container.mobile .venue-card{margin:.5rem 0;padding:.5rem}.book-container.mobile .venue-card .venue-name{font-size:.8rem}.book-container.mobile .venue-card .venue-address,.book-container.mobile .venue-card .venue-city{font-size:.7rem}.book-container.mobile .map-link{padding:.4rem .8rem;font-size:.65rem}.book-container.mobile .page-8-content{gap:.4rem;padding:.5rem}.book-container.mobile .countdown-section.compact{margin-bottom:.3rem;padding:.4rem}.book-container.mobile .countdown-section.compact .countdown-title{margin-bottom:.4rem;font-size:.75rem}.book-container.mobile .countdown-section.compact .countdown-timer{gap:.4rem}.book-container.mobile .countdown-section.compact .countdown-item{min-width:45px;padding:.3rem .5rem}.book-container.mobile .countdown-section.compact .countdown-number{font-size:1.1rem}.book-container.mobile .countdown-section.compact .countdown-label{font-size:.5rem}.book-container.mobile .countdown-section.compact .countdown-separator{font-size:.9rem}.book-container.mobile .map-section.with-qr{margin-bottom:.4rem}.book-container.mobile .map-section.with-qr .section-title{margin-bottom:.3rem;font-size:.85rem}.book-container.mobile .venue-name-header{margin:.2rem 0 .15rem;font-size:.8rem}.book-container.mobile .venue-address-sub{margin:0 0 .4rem;font-size:.65rem}.book-container.mobile .location-actions{gap:.8rem}.book-container.mobile .map-link-btn{-webkit-tap-highlight-color:#0000001a;touch-action:manipulation;border-radius:20px;padding:.45rem .9rem;font-size:.6rem}.book-container.mobile .map-link-btn:active{transform:scale(.95)}.book-container.mobile .map-link-btn span{font-size:.7rem}.book-container.mobile .qr-mini-img{border-width:2px;border-radius:6px;width:50px;height:50px}.book-container.mobile .qr-mini-label{margin-top:.15rem;font-size:.5rem}.book-container.mobile .calendar-section.compact{margin-top:.4rem;padding-top:.4rem}.book-container.mobile .calendar-section.compact .section-title{margin-bottom:.4rem;font-size:.7rem}.book-container.mobile .calendar-section.compact .calendar-buttons{gap:.4rem}.book-container.mobile .calendar-section.compact .calendar-btn{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:#0000001a;touch-action:manipulation;border-radius:8px;min-width:55px;padding:.4rem .6rem;font-size:.5rem}.book-container.mobile .calendar-section.compact .calendar-btn:active{transform:scale(.95)}.book-container.mobile .calendar-section.compact .calendar-btn .cal-icon{font-size:.85rem}.book-container.mobile .qr-code-container{margin:.5rem 0}.book-container.mobile .qr-code-image{border-radius:8px;width:70px;height:70px}.book-container.mobile .qr-code-label{margin-top:.3rem;font-size:.55rem}.book-container.mobile .calendar-section{z-index:10;margin-top:.8rem;padding-top:.6rem;position:relative}.book-container.mobile .calendar-section .section-title{margin-bottom:.5rem;font-size:.75rem}.book-container.mobile .calendar-buttons{z-index:15;gap:.5rem;position:relative}.book-container.mobile .calendar-btn{cursor:pointer;pointer-events:auto;z-index:20;-webkit-tap-highlight-color:#0000001a;touch-action:manipulation;border-radius:10px;min-width:60px;padding:.5rem .7rem;font-size:.55rem;position:relative}.book-container.mobile .calendar-btn:active{transform:scale(.95)}.book-container.mobile .calendar-btn .cal-icon{font-size:1rem}.book-container.mobile .timeline{gap:.5rem}.book-container.mobile .timeline-icon{width:32px;min-width:32px;height:32px;font-size:1rem}.book-container.mobile .timeline-content{padding:.4rem .6rem}.book-container.mobile .timeline-year{font-size:.65rem}.book-container.mobile .timeline-title{font-size:1rem}.book-container.mobile .timeline-desc{font-size:.7rem}.book-container.mobile .photo-grid{gap:.5rem}.book-container.mobile .photo-icon{font-size:1.8rem}.book-container.mobile .photo-caption{font-size:.65rem}.book-container.mobile .gallery-hashtag{word-break:break-word;font-size:.6rem}.book-container.mobile .gallery-hashtag.hashtag-small{font-size:.5rem}.book-container.mobile .gallery-cta{font-size:.75rem}.book-container.mobile .parents-section{margin-bottom:.5rem;padding-bottom:.5rem}.book-container.mobile .parents-intro{letter-spacing:1px;margin:.15rem 0;font-size:.55rem}.book-container.mobile .parents-names{margin-top:.4rem}.book-container.mobile .parent-name{margin:.1rem 0;font-size:.65rem}.book-container.mobile .couple-section{padding:.5rem 0}.book-container.mobile .we-text{font-size:.5rem}.book-container.mobile .couple-script{margin:.2rem 0;font-size:1.5rem}.book-container.mobile .and-text{font-size:.85rem}.book-container.mobile .invite-text{margin:.1rem 0;font-size:.5rem}.book-container.mobile .passport-info-section{margin-top:.5rem;padding:.5rem}.book-container.mobile .passport-to{margin-bottom:.3rem;padding-bottom:.2rem;font-size:.55rem}.book-container.mobile .passport-details-grid{gap:.25rem}.book-container.mobile .detail-label{color:#222;min-width:65px;font-size:.5rem}.book-container.mobile .detail-value{color:#111;font-size:.55rem}.book-container.mobile .couple-seal{margin:.4rem 0 .2rem;padding:.3rem .5rem;font-size:.8rem}.book-container.mobile .bible-verse{padding:1rem}.book-container.mobile .verse-text{font-size:.85rem;line-height:1.6}.book-container.mobile .verse-ref{font-size:.75rem}.book-container.mobile .plane-icon-small{font-size:1.5rem}.book-container.mobile .final-message{padding:1rem}.book-container.mobile .thank-you{font-size:.9rem}.book-container.mobile .final-couple-name{font-size:1.5rem}.book-container.mobile .book-page{-webkit-overflow-scrolling:touch;padding:.75rem;overflow:hidden auto}}@media (width<=480px){.boarding-pass-offcanvas{height:100%}.passport-invitation{padding:.5rem .5rem 180px}.passport-wrapper{margin-top:50px}.passport-container{max-width:360px}.passport-cover{min-height:540px;padding:1.25rem 1rem}.passport-title{letter-spacing:4px;font-size:1.5rem}.passport-emblem{width:85px;height:100px}.emblem-sun{width:22px;height:22px}.couple-names-cover{font-size:1.5rem}.close-passport-btn{padding:8px 14px;font-size:.75rem}.close-passport-btn .close-text{display:none}.passport-page{min-height:400px;padding:1rem}.couple-script{font-size:1.75rem}.boarding-pass-content{flex-direction:column;max-height:90%!important}.bp-left{border-bottom:2px dashed #ccc;border-right:none}.bp-perforation{border-top:2px dashed #ccc;border-left:none;width:100%;height:0}.bp-save{font-size:1rem}.bp-the-date,.bp-day{font-size:1.5rem}}@media (height<=700px){.passport-wrapper{margin-top:40px}.passport-cover{padding:1rem .75rem}.passport-emblem{width:75px;height:90px;margin:.5rem auto}.passport-save-date{margin:.5rem 0}.tap-to-open{margin-top:.75rem}.boarding-pass-content{max-height:none;overflow:visible}}@media (height<=500px) and (orientation:landscape){.passport-wrapper{margin-top:20px}.boarding-pass-content{flex-direction:row;max-height:none;overflow:visible}.bp-left{border-bottom:none;border-right:2px dashed #ccc}.bp-perforation{border-top:none;border-left:2px dashed #ccc;width:0;height:auto}}.love-story-section{flex-direction:column;height:100%;padding:.25rem;display:flex}.love-story-subtitle{text-align:center;font-family:var(--font-body);color:var(--passport-gold);margin-bottom:.4rem;font-size:.55rem;font-style:italic}.timeline{flex-direction:column;flex:1;gap:.4rem;padding-left:.75rem;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--passport-gold), var(--passport-burgundy), var(--passport-gold));border-radius:2px;width:2px;position:absolute;top:.25rem;bottom:.25rem;left:.4rem}.timeline-item{align-items:flex-start;gap:.5rem;padding-left:.25rem;display:flex;position:relative}.timeline-icon{background:var(--passport-cream);border:2px solid var(--passport-gold);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:28px;min-width:28px;height:28px;font-size:.75rem;display:flex;position:relative;box-shadow:0 2px 6px #8b5a2b33}.timeline-content{border-left:2px solid var(--passport-gold);background:linear-gradient(135deg,#ffffffb3,#fff8f080);border-radius:6px;flex:1;padding:.35rem .5rem;box-shadow:0 1px 4px #0000000d}.timeline-year{font-family:var(--font-body);color:#fff;background:linear-gradient(135deg, var(--passport-burgundy), var(--passport-gold));border-radius:8px;margin-bottom:.15rem;padding:.1rem .35rem;font-size:.5rem;font-weight:700;display:inline-block}.timeline-title{font-family:var(--font-script);color:var(--passport-green);margin:.1rem 0;font-size:.85rem;line-height:1.1}.timeline-desc{font-family:var(--font-body);color:#555;margin:0;font-size:.5rem;line-height:1.3}.love-quote{text-align:center;border-top:1px dashed var(--passport-gold);margin-top:auto;padding-top:.5rem}.love-quote p{font-family:var(--font-script);color:var(--passport-burgundy);margin:.1rem 0;font-size:.8rem;line-height:1.2}.entourage-section{flex-direction:column;justify-content:flex-start;gap:.15rem;height:100%;padding:.25rem .4rem;display:flex;overflow:hidden}.entourage-section.compact{border-bottom:1px dashed #2c553033;gap:.2rem;height:auto;margin-bottom:.3rem;padding:.2rem .2rem .3rem}.entourage-group{text-align:center;margin-bottom:.5rem}.entourage-title{font-family:var(--font-script);color:var(--passport-burgundy);margin-bottom:.15rem;font-size:2.4rem;position:relative}.entourage-title:after{content:"✦";color:var(--passport-gold);margin-top:.1rem;font-size:.4rem;display:block}.entourage-subtitle{font-family:var(--font-body);color:#b8a888;letter-spacing:.8px;text-transform:uppercase;margin-bottom:.08rem;font-size:.38rem;font-weight:600}.sponsors-list{flex-direction:column;gap:0;display:flex}.sponsor-pair{border-bottom:1px dotted #b8a88a40;justify-content:space-around;gap:.5rem;padding:.06rem 0;display:flex}.sponsor-pair:last-child{border-bottom:none}.sponsor-name{color:#333;margin:.01rem 0;font-family:Cormorant Garamond,serif;font-size:1.04rem;line-height:1.3}.sponsor-headers{border-bottom:1px solid #b8a88a99;padding-bottom:.1rem}.sponsor-header{letter-spacing:.8px;text-transform:uppercase;color:#222;font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:600}.secondary-sponsors{background:#b8a88a14;border-radius:4px;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.4rem;padding:.4rem;display:grid}.bind-together{text-align:center;margin-top:.4rem;padding:.5rem}.sponsor-type{text-align:center}.wedding-party{grid-template-columns:1fr 1fr;gap:.6rem;padding:.25rem 0;display:grid}.party-column{text-align:center}.party-name{color:#333;margin:.02rem 0;font-family:Cormorant Garamond,serif;font-size:.42rem;line-height:1.1}.bearers-section{background:#b8a88a1a;border-radius:6px;grid-template-columns:1fr 1fr;gap:.4rem;padding:.35rem;display:grid}.bearer-item{text-align:center;position:relative}.bearer-icon{margin-top:.1rem;font-size:.85rem;display:block}.bible-bearers{text-align:center;padding:.3rem;position:relative}.bible-bearers .bearer-icon{margin-top:.25rem;font-size:1rem}.bearers-list{justify-content:center;gap:.6rem;display:flex}.flower-girl-solo{text-align:center;background:#ffb6c11a;border-radius:6px;padding:.3rem}.flower-girl-solo .bearer-icon{margin-top:.1rem;font-size:1rem}.flower-girls-section{text-align:center;background:#ffb6c11a;border-radius:6px;padding:.3rem}.flower-girls-section .bearer-icon{margin-top:.15rem;font-size:1rem}.little-couple{border:1px dashed var(--passport-gold);background:linear-gradient(135deg,#b8a88a26 0%,#8b73551a 100%)}.little-couple .bearer-icon{font-size:1rem}.entourage-footer{text-align:center;border-top:1px dashed var(--passport-gold);margin-top:auto;padding-top:.35rem}.entourage-thanks{font-family:var(--font-body);color:#666;margin-bottom:.1rem;font-size:.42rem;font-style:italic}.entourage-couple{font-family:var(--font-script);color:var(--passport-burgundy);font-size:.8rem}.countdown-section{text-align:center;background:linear-gradient(135deg,#8b5a2b14 0%,#b8a88a1f 100%);border:1px solid #b8a88a4d;border-radius:8px;margin-bottom:.3rem;padding:.4rem .3rem}.countdown-title{font-family:var(--font-script);color:var(--passport-burgundy);letter-spacing:.5px;margin-bottom:.25rem;font-size:.9rem}.countdown-timer{justify-content:center;align-items:center;gap:.15rem;margin-bottom:.2rem;display:flex}.countdown-item{background:#ffffffb3;border-radius:6px;flex-direction:column;align-items:center;min-width:.9rem;padding:.15rem .2rem;display:flex;box-shadow:0 2px 4px #0000000d}.countdown-number{color:var(--passport-burgundy);font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:700;line-height:1}.countdown-label{color:#888;text-transform:uppercase;letter-spacing:.5px;margin-top:.05rem;font-family:Montserrat,sans-serif;font-size:.22rem;font-weight:500}.countdown-separator{color:var(--passport-gold);margin:0 .02rem;font-family:Montserrat,sans-serif;font-size:.5rem;font-weight:700}.countdown-date{font-family:var(--font-body);color:#666;margin:0;font-size:.38rem;font-style:italic}@media (width>=769px){.entourage-section{justify-content:flex-start;gap:.1rem;padding:.2rem .4rem;overflow-y:auto}.entourage-title{margin-bottom:.1rem;font-size:1.6rem}.entourage-subtitle{margin-bottom:.05rem;font-size:.35rem}.sponsor-name,.party-name{margin:.01rem 0;font-size:.65rem;line-height:1.15}.sponsor-header{margin-bottom:.1rem;font-size:.6rem}.sponsor-pair{padding:.02rem 0}.sponsors-list{gap:.02rem}.wedding-party{gap:.2rem;padding:.05rem 0}.secondary-sponsors{gap:.1rem;padding:.15rem}.bearers-section{gap:.25rem;padding:.25rem}.bearer-icon{font-size:.8rem}.book-page .page-content:has(.entourage-section){overflow-y:auto}.countdown-section{padding:.5rem .4rem}.countdown-title{font-size:1rem}.countdown-number{font-size:.75rem}.countdown-item{min-width:1rem;padding:.2rem .25rem}}@media (width<=768px){.entourage-section{-webkit-overflow-scrolling:touch;gap:.1rem;max-height:100%;padding:.2rem .3rem;overflow-y:auto}.entourage-title{margin-bottom:.1rem;font-size:2rem}.entourage-title:after{margin-top:.05rem;font-size:.35rem}.entourage-subtitle{margin-bottom:.05rem;font-size:.4rem}.sponsor-name,.party-name{font-size:.8rem;line-height:1.2}.sponsor-pair{padding:.04rem 0}.sponsor-header{font-size:.7rem}.bearer-icon{font-size:.75rem}.secondary-sponsors{gap:.12rem;margin-top:.15rem;padding:.15rem}.bearers-section{gap:.25rem;padding:.25rem}.countdown-section{margin-bottom:.25rem;padding:.3rem .2rem}.countdown-title{margin-bottom:.2rem;font-size:.8rem}.countdown-timer{gap:.1rem}.countdown-item{min-width:.8rem;padding:.12rem .15rem}.countdown-number{font-size:.55rem}.countdown-label{font-size:.18rem}.countdown-separator{font-size:.4rem}.countdown-date{font-size:.32rem}}.gallery-section{flex-direction:column;height:100%;padding:.5rem;display:flex}.gallery-subtitle{text-align:center;font-family:var(--font-body);color:var(--passport-gold);margin-bottom:.5rem;font-size:.6rem;font-style:italic}.photo-grid{flex:1;grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.photo-item{flex-direction:column;gap:.2rem;display:flex}.photo-placeholder{aspect-ratio:1;border:1px solid var(--passport-gold);background:linear-gradient(135deg,#f5f0e8 0%,#e8e0d5 50%,#f5f0e8 100%);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 6px #00000014,inset 0 1px #ffffff80}.photo-placeholder:before{content:"";opacity:.3;background-color:#0000;background-image:linear-gradient(45deg,#0000 49%,#8b5a2b1a 49% 51%,#0000 51%),linear-gradient(-45deg,#0000 49%,#8b5a2b1a 49% 51%,#0000 51%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:15px 15px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.photo-icon{z-index:1;font-size:1.25rem;position:relative}.photo-number{font-family:var(--font-body);color:var(--passport-gold);z-index:1;background:#fffc;border-radius:8px;padding:.1rem .3rem;font-size:.5rem;font-weight:600;position:relative}.photo-caption{font-family:var(--font-body);color:#666;text-align:center;margin:0;padding:0 .15rem;font-size:.5rem;line-height:1.3}.gallery-footer{text-align:center;border-top:1px dashed var(--passport-gold);margin-top:auto;padding-top:.5rem}.gallery-hashtag{font-family:var(--font-body);color:var(--passport-burgundy);word-break:break-word;margin:0 0 .15rem;font-size:.65rem}.gallery-hashtag.hashtag-small{color:var(--passport-green);font-size:.55rem}.gallery-cta{font-family:var(--font-body);color:var(--passport-gold);margin:0;font-size:.55rem}@media (width<=480px){.timeline-icon{width:24px;min-width:24px;height:24px;font-size:.7rem}.timeline-title{font-size:.9rem}.timeline-desc{font-size:.6rem}.photo-grid{gap:.5rem}.photo-icon{font-size:1.2rem}}@media (width<=360px){.timeline{gap:.5rem;padding-left:.75rem}.timeline-content{padding:.4rem .5rem}.timeline-year{font-size:.6rem}.timeline-title{font-size:.85rem}.photo-grid{gap:.4rem}.photo-caption{font-size:.55rem}}
